package org.jkuang.qstar.index.iterator;

/**
 * 分时迭代器迭代器，当轮换到
 * 
 * @author jkuang
 *
 */
public interface TSIterator<E> {
	// 设置最大扫描数量
	final int MAX_SCAN_COUNT = 1024;

	/**
	 * 获取下个元素
	 * 
	 * @return
	 */
	public E next();

	/**
	 * 获取迭代器的顶部元素而不弹出该元素
	 * 
	 * @return
	 */
	public E peek();

	/**
	 * 
	 * @return
	 */
	public boolean isVirtual();

	/**
	 * 元素是否还有下一个
	 * 
	 * @return
	 */
	public boolean hasNext();

	/**
	 * 
	 * @return
	 */
	public int scanSize();

	/**
	 * 比较大小
	 * 
	 * @param o
	 * @return
	 */
	public int compareTo(TSIterator<E> o);
}
